package ar.uba.fi.algo3.algoflight.model;

public class Direccion {

	private float angulo;

	public Direccion(float angulo) {
		this.angulo = angulo;
	}

	public Direccion(double angulo) {
		this.angulo = Double.valueOf(angulo).floatValue();
	}

	public float getAngulo() {
		return angulo;
	}

	public static Direccion calcularDireccion(Posicion posicionA,
			Posicion posicionB) {
		float segmentoY = posicionB.getCoordY() - posicionA.getCoordY();
		float segmentoX = posicionB.getCoordX() - posicionA.getCoordX();
		return new Direccion(Math.toDegrees(Math.atan2(segmentoY, segmentoX)));
	}

	public Posicion calcularSiguientePosicion(Posicion posicion, float velocidad) {
		Posicion puntoActual = posicion.clone();
		double anguloEnRadianes = Math.toRadians(angulo);

		puntoActual.sumarPosicion(new Posicion(Math.cos(anguloEnRadianes)
				* velocidad, Math.sin(anguloEnRadianes) * velocidad));

		return puntoActual;
	}

}
